package main

import "fmt"

func main() {
	demo1()
}

func demo1() {
	// 映射是一种数据结构，用于存储无序的键值对
	// 映射基于键来存储值，能够基于键快速检索数据
	// 映射的创建
	dict1 := make(map[string]int)
	fmt.Println(dict1)

	// 映射创建时初始化
	dict2 := map[string]string{"red": "#f00", "orange": "#e95a22"}
	fmt.Println(dict2)

	// 映射的赋值
	dict3 := make(map[string]string)
	dict3["hello"] = "word"
	fmt.Println(dict3)

	// 映射值的查找（方式一）
	dict4 := map[string]int{"age": 24, "salary": 99}
	value, exists := dict4["age"]
	if exists {
		fmt.Println(value)
	}
	value, exists = dict4["happy"]
	if exists {
		fmt.Println(value)
	}

	// 映射值的查找（方式二）
	dict5 := map[string]string{"happy": "yes"}
	value2 := dict5["god"]
	if value2 != "" {
		fmt.Println(value)
	}

	// 映射的遍历
	dict6 := map[string]string{"a": "aa", "b": "bb", "c": "cc"}
	for k, v := range dict6 {
		fmt.Println(k, v)
	}

	// map元素删除
	dict7 := map[string]int{"god": 99}
	delete(dict7, "god")
	delete(dict7, "gxd") // 该键不存在，没有副作用

}
